package api.map;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * java.util.Map查找表
 * Map是java集合框架中的一员，但不是实现Collection接口
 *
 * Mao是一个接口，常用的实现类
 */
public class MapDemo1 {
    public static void main(String[] args) {
        Map<String,Integer> map=new LinkedHashMap<>();

        /*
        注意，如果Map的value类型是包装类，那么在接收时不要使用对应的基本类写，避免因为自动拆箱导致空指针异常
         */
        Integer value=map.put("语文",99);
        System.out.println(value);
        map.put("数学",59);
        map.put("英语",30);
        map.put("物理",80);
        map.put("化学",95);
        System.out.println(map);

        //返回值为被替换下来的原数学这个key对应的value59
        value=map.put("数学",95);
        System.out.println(map);
        System.out.println(value);


        value=map.get("语文");
        System.out.println("语文："+value);
        value=map.get("体育");
        System.out.println("体育："+value);


        int size= map.size();
        System.out.println("size:"+size);

        value = map.remove("数学");
        System.out.println("被删除的key对应的value是:"+value);
        System.out.println(map);


        /*
        boolean containsKey(Object key)
        判断当前Map是否包含给定的key
        boolean containValue(Object value)
        判断当前Map是否包含给定的value
         */
        boolean ck=map.containsKey("数学");
        System.out.println("是否包含数学这个key："+ck);
        System.out.println("是否包含英语这个key："+map.containsKey("英语"));

        boolean cv=map.containsValue(99);
        System.out.println("是否包含99这个value："+cv);

        //清空map
        //map.clear();
        //System.out.println(map);
    }

}
